package edu.nf.vac.vaccination.inf;

import edu.nf.vac.vaccination.dto.NeedleNumDTO;
import edu.nf.vac.vaccination.dto.NeedleNumPageDTO;
import edu.nf.vac.vaccination.dto.PeriodDTO;

import java.util.List;

/**
 * @Author : PYY
 * @create 2022/3/30
 * 针次信息
 */
public interface NeedleNumService {
    /**
     * 创建针次，包括该针次的接种时段以及不同时段可接种的疫苗
     * @param dto
     */
    void addNeedleNum(NeedleNumDTO dto);

    /**
     * 更新针次与时段信息
     * @param dto
     */
    void updateNeedleNum(NeedleNumDTO dto);

    /**
     * 疫苗总量自减
     * @param period
     * @param needleNumId
     */
    void decrTotal(String period,Integer needleNumId);

    /**
     * 针次列表信息查询
     * @param dto 查询条件
     * @param pageNum
     * @param pageSize
     * @return
     */
    NeedleNumPageDTO listNeedleNum(NeedleNumDTO dto, Integer pageNum, Integer pageSize);

    /**
     * 依据不同条件查询针次信息（app端查询）
     * @param dto
     * @return
     */
    List<NeedleNumDTO> searchNeedleNum(NeedleNumDTO dto);

    /**
     * 根据针次id查询预约时段信息（app端查询）
     * @param needleNumId
     * @return
     */
    List<PeriodDTO> listPeriodByNeedleNumId(Integer needleNumId);
}
